package com.zjt.service.product;

import com.zjt.entity.product.ProductInfo;
import com.zjt.entity.product.QrCode;
import com.zjt.web.api.vo.base.PageVO;
import com.zjt.web.api.vo.base.RecordVO;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: xueyanbeijing
 * Date: 12-8-25
 * Time: AM6:11
 * 条形码和二维码检验，识别，二维码生成的统一接口。
 * To change this template use File | Settings | File Templates.
 */
public interface ICodeService {
    /**
     * 根据条形码查询验证商品
     * @param barCode
     * @param type 条形码类型   例如：ean-13
     * @param userId
     * @return
     */
    public RecordVO validateByBarCode(String barCode,String type,long userId); //根据条形码查询验证商品

    /**
     * 根据二维码验证是否存在
     * @param qrCode
     * @param userId
     * @return
     */
    public RecordVO validateByQrCode(String qrCode,long userId);//根据二维码验证是否存在

    /**
     *   生成二维码
     *真假通二维码规则
     *
     * @param qrNum 需要生成二维的数量，意思就是一个产品需要生多少个
     * barCode对应数据库中是codeValue
     */

    public boolean encoderQRCode(ProductInfo productInfo,long qrNum);

    /**
     * 生成二维码
     * @param list 需要生成二级码的产品列表
     */
    public void encoderQRCode(List<ProductInfo> list);

    /**
     * 对产品库所有产品生成二维码
     * 慎重使作，速度会慢
     */
    void encoderQRCodeAll();

    /**
     * 根据二维码值，生成二级码PNG图片
     * @param content
     * productQRPath从常量表取得。
     * 路径和内容自动取得
     */
    void QrCodeToPng(String content,String productQRPath);

    List<QrCode> getQrCodeList(PageVO pageVO);

}
